9.1添加SSH服务器
一说到开发板和Windows之间互传文件,大家肯定马上就会想到通过SSH,但是大家最终发现,无论我们通过什么软件,总是不能登录到开发板上。
那么,这会是什么原因呢?因为目前为止,我们开发板上面的系统还没有SSH服务器,所以我们总是不能登录上去。那么,接下来,我们就来给开发板上的系统添加SSH服务器。
首先进入OpenWrt系统源码的顶层目录,然后执行make menuconfig命令。
\$make menuconfig
Network --->
SSH --->
<*> openssh-sftp-client
<*> openssh-sftp-server
最后就是保存退出,然后重新编译。
$make V=99
9.2开发板与Windows互传文件
将上面新编译出来的固件重新烧写到开发板上面,此时开发板上面的系统就支持SSH服务器了,接下来我们就通过xftp软件登录到开发板。
【注】Windows的基于FTP的软件很多,比如SSHSecureShellClient
9.3开发板Ubuntu传文件
9.3.1 准备工作
之前我们一直都是使用 Ubuntu完成 OpenWrt 的编译工作,然后通过 smb 服务器把固件拿到 Windows 里面去进行下载,当然编译内核时这个是固定做法;但是后面涉及到其他部分比如驱动程序固件,应用程序固件,我们就不会说通过这种方式进行固件的下载了(在ubuntu 中编译出固件,然后 smb 共享到 Windows,通过 ssh 软件共享到开发板进行使用),这样相对麻烦,我们可以通过 ssh 直接从 Ubuntu下载文件到开发板。
注意:ssh 必须有客户端和服务器,在上文讲我们让开发板支持了 ssh 网络服务,同时Ubuntu也必须支持该服务才能彼此通信,开发板的 ssh 服务是 OpenWrt 内核运行后才可以实现的,所以内核固件是无法直接从 Ubuntu下载的,这点是需要说明的!
其实用 ssh 传文件图形化操作更方便,以下方法测试一下也可以的,艺多不压身!
好的,现在我们在虚拟机 Ubuntu中安装 ssh 网络服务(注意如果用我们提供镜像可以跳过安装 ssh):
\$sudo apt-get install openssh-server
安装后我们可以查看 ssh 网络服务的当前版本:
\$ssh -V
9.3.2开发板登录到Ubuntu的 ssh 服务器中
登录的命令格式为:
\$ssh servername@serverip
其中 servername 是 Ubuntu的用户名,serverip 是 Ubuntu的 ip 地址。
比如我们登录到一个用户名为 bruceou 的Ubuntu的 ssh 服务器中(能登录的大前提是可以相互 ping 得通)。
好的,现在可以登录到 ubuntu 了。
接下来我们要从 Ubuntu上面下载文件到开发板中,下载方式很简单:
命令格式:scp 源(服务器目标文件路径) 目标(用户名@用户 ip :文件路径)
注意:要在超级用户模式下操作。
在后面的实验中,除了OpenWrt 内核固件外,我们都是通过这样的方法从 Ubuntu中获取文件的,所以务必掌握这一部分的知识,尤其是 scp 做下载功能的时候。
当然 scp 还可以用来做文件的上传,这里我们带过讲解一下使用方法:
scp 源(用户名@用户 ip :文件路径) 目标文件路径
比如:scp root@192.168.0.1:/a.c /home/bruceou/
上传的后面我们几乎不会用到,理解就可以了,也是很简单的!